import $ from '@/lib/jquery-2.1.4.min.js'
import { Dialog } from 'vant'

export function ZhuanPan(parameter) {
  return $(function() {
    let gList = parameter.gList,//中奖提示
      missesFun = parameter.missesFun,
      $ring = $('.ring'),
      $prize = $('.prize'),//转盘
      $btn = $('#btn'),//按钮
      $change = $('#change'),//显示剩余抽奖机会
      $li = $('.scroll li'),//中奖信息滚动的盒子
      $sNum = $('.start-num'),//手机头号，三位数
      $info = $('.info'),//中奖提示信息
      data = { count: parameter.zpTotal || 0 },//次数
      bool = false,//判断是否在旋转，true表示是，false表示否
      timer//定时器
    $change.html(data.count)
    let $maskRule = $('#mask-rule'),//规则遮罩层
      $mask = $('#mask'),//红包遮罩层
      $winning = $('.winning'),//红包
      $card = $('#card'),
      $close = $('#close')
    //link = false;//判断是否在链接跳转中

    //规则
    $('.rule').click(function() {
      $maskRule.show()
    })
    $('#close-rule').click(function() {
      $maskRule.hide()
    })

    /*中奖信息提示*/
    function win() {
      //遮罩层显示
      $mask.show()
      $winning.addClass('reback')
      setTimeout(function() {
        $card.addClass('pull')
      }, 500)

      //关闭弹出层
      $('#close,.win,.btn').click(function() {
        //$close.click(function () {
        $mask.hide()
        $winning.removeClass('reback')
        $card.removeClass('pull')
      })
      /*$(".win,.btn").click(function () {
          link = true;
      });*/
    }

    //此处可以在commonjs中合并
    function queryString(name) {
      name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]')
      let regexS = '[\\?&]' + name + '=([^&#]*)'
      let regex = new RegExp(regexS)
      let results = regex.exec(window.location.search)
      if (results === null) {
        return ''
      } else {
        return decodeURIComponent(results[1].replace(/\+/g, ' '))
      }
    }

    init()

    function init() {
      timer = setInterval(function() {
        $ring.toggleClass('light')
      }, 1000)
    }

    //点击抽奖
    $btn.click(function() {
      if (bool) return // 如果在执行就退出
      bool = true // 标志为 在执行
      if (data.count <= 0) { //当抽奖次数为0时
        $change.html(0)//次数显示为0
        bool = false
        Dialog.alert({
          title: '系统提示',
          message: '没有次数了'
        })
      } else { //还有次数就执行
        data.count--
        data.count <= 0 && (data.count = 0)
        $change.html(data.count)//显示剩余次数
        $prize.removeClass('running')
        clickFn()
      }
    })

    //随机概率
    async function clickFn() {
      //刷新索引
      $li = $('.scroll li'),//中奖信息滚动的盒子
        $sNum = $('.start-num'),//手机头号，三位数
        $info = $('.info')//中奖提示信息

      let data = await parameter.result()
      if (data.index < 0) {
        bool = false
        return
      }
      rotateFn(data, 0 - (data.index * 60), data)
    }

    //选中函数。参数：奖品数据、角度
    function rotateFn(data, angle) {
      /*手机号的处理
      let arr = [13477735912, 13100656035, 15926909285];
      let a = arr[0] + "";
      let f = a.substr(0, 3);
      let l = a.substr(7, 4);*/
      bool = true
      $prize.stopRotate()
      $prize.rotate({
        angle: 0,//旋转的角度数
        duration: 4000, //旋转时间
        animateTo: angle + 1440, //给定的角度,让它根据得出来的结果加上1440度旋转。也就是至少转4圈
        callback: function() {
          bool = false // 标志为 执行完毕
          if (data.prizeType == '0') {
            if (missesFun) {
              missesFun()
            }
            return
          }

          win()
          show('您', data.name)
        }
      })
    }

    //中奖信息滚动。前两个参数为手机号前三位和后四位手机尾号，text为中的什么奖品
    function show(name, text) {
      //最新中奖信息
      $sNum.eq(2).html(name)
      $info.eq(2).html(text)
      $li.css('top', '-' + 40 / 75 + 'rem')//滚动
      //滚动之后的处理
      setTimeout(function() {
        $li.css({
          'top': '0',
          'transition': 'all 0s ease-in-out'
        })
        //更新中奖信息
        $info.eq(0).html($info.eq(1).html())
        $sNum.eq(0).html($sNum.eq(1).html())
        $info.eq(1).html($info.eq(2).html())
        $sNum.eq(1).html($sNum.eq(2).html())
      }, 500)
      $li.css('transition', 'all 0.5s ease-in-out')
    }

    //中奖信息提示
    $('#close,.win,.btn').click(function() {
      $prize.addClass('running')
      init()
    })
  })
}

$(function() {

})

